package com.hui.admin.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 跨域配置
 */
@Configuration
public class CorsConfig {
    // 1天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 设置访问源地址，表示所有路劲都可以访问
        corsConfiguration.addAllowedHeader("*"); // 设置访问源请求头，表示所有的请求头都可以
        corsConfiguration.addAllowedMethod("*"); // 设置访问源请求方法，表示所有的请求方法都可以
        corsConfiguration.setMaxAge(MAX_AGE);    // 设置请求最大时长，表示在这个时长内重复的请求不会再次发送预检请求
        source.registerCorsConfiguration("/**", corsConfiguration); // 对当前路径下的所有请求都应用当前的跨域配置
        return new CorsFilter(source);
    }
}


